﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CommonData;

namespace DataClient
{
    public partial class ChangePasswordForm : CommonData.CommonChildForm
    {
        string _STR_OLD_PASS = string.Empty;
        public ChangePasswordForm()
        {
            InitializeComponent();
            _STR_OLD_PASS = CommonFunctions.DecodeFrom64(DataClient.Properties.Settings.Default.PasswordSettingDB);
        }

        private bool IsValidData()
        {
            errorProvider.ClearErrors();
            bool isValid = true;
            if (string.IsNullOrEmpty(txtOldPass.Text))
            {
                CommonFunctions.ShowErrorProvider(errorProvider, txtOldPass, "Mật khẩu cũ không được để trống.");
                isValid = false;
            }
            else if (!txtOldPass.Text.Equals(_STR_OLD_PASS))
            {
                CommonFunctions.ShowErrorProvider(errorProvider, txtOldPass, "Mật khẩu cũ không hợp lệ.");
                isValid = false;
            }
            if (string.IsNullOrEmpty(txtNewPass.Text))
            {
                CommonFunctions.ShowErrorProvider(errorProvider, txtNewPass, "Mật khẩu mới không được để trống.");
                isValid = false; 
            }
            if (string.IsNullOrEmpty(txtVerPass.Text))
            {
                CommonFunctions.ShowErrorProvider(errorProvider, txtVerPass, "Xác nhận mật khẩu không được để trống.");
                isValid = false;
            }

            if (!string.IsNullOrEmpty(txtNewPass.Text) && !string.IsNullOrEmpty(txtVerPass.Text))
            {
                if (!txtVerPass.Text.Equals(txtNewPass.Text))
                {
                    CommonFunctions.ShowErrorProvider(errorProvider, txtNewPass, "Mật khẩu mới xác nhận không đúng.");
                    isValid = false;
                }
                else if (txtNewPass.Text.Equals(txtOldPass.Text))
                {
                    CommonFunctions.ShowErrorProvider(errorProvider, txtNewPass, "Mật khẩu mới không được trùng với mật khẩu cũ.");
                    isValid = false;
                }
            }

            return isValid;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if (IsValidData())
            {
                DataClient.Properties.Settings.Default.PasswordSettingDB = CommonFunctions.EncodeTo64(txtNewPass.Text.Trim());
                DataClient.Properties.Settings.Default.Save();
                DataClient.Properties.Settings.Default.Reload();
                MessageClass.ShowInformationMessage("Đổi mật khẩu thành công!Bạn có thể sử dụng mật khẩu mới để tiếp tục làm việc.");
                this.Close();
            }
            else
            {
                MessageClass.ShowErrorMessage("Nhập dữ liệu chưa hợp lệ. Hãy kiểm tra ở những vị trí được đánh dấu!");
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
